﻿#include<iostream>
#include<string>
using namespace std;

//day25-01 牛客：笨小猴，题号：170466
//解法：模拟
//bool IsPrim(int x)
//{
//    if (x < 2) return false;
//    for (int i = 2; i <= sqrt(x); i++)
//    {
//        if (x % i == 0) return false;
//    }
//    return true;
//}
//int main()
//{
//    string s;
//    cin >> s;
//    int hash[26] = { 0 };
//    int maxn = 0, minn = 100;
//    for (auto ch : s)
//        hash[ch - 'a']++;
//    for (auto i : hash)
//    {
//        if (i)
//        {
//            maxn = max(maxn, i);
//            minn = min(minn, i);
//        }
//    }
//    if (IsPrim(maxn - minn)) cout << "Lucky Word" << endl << maxn - minn << endl;
//    else cout << "No Answer" << endl << 0 << endl;
//    return 0;
//}


//day25-02 牛客：主持人调度（一），题号：2427095
//解法：排序
//bool hostschedule(vector<vector<int> >& schedule)
//{
//    sort(schedule.begin(), schedule.end());
//    int n = schedule.size();
//    for (int i = 0; i < n - 1; i++)
//    {
//        if (schedule[i][1] > schedule[i + 1][0]) return false;
//    }
//    return true;
//}


//day25-03 牛客：分割等和⼦集，题号：2383964
//解法：动态规划——01背包
//const int N=510;
//int nums[N];
//bool dp[N][100 * N] = { 0 };
//int n, sum;
//int main()
//{
//    cin >> n;
//    for (int i = 1; i <= n; i++)
//    {
//        cin >> nums[i];
//        sum += nums[i];
//    }
//    if (sum % 2 == 1) cout << "false";
//    else
//    {
//        int aim = sum / 2;
//        dp[0][0] = true;
//        for (int i = 1; i <= n; i++)
//        {
//            for (int j = 0; j <= aim; j++)
//            {
//                dp[i][j] = dp[i - 1][j];
//                if (j >= nums[i])
//                    dp[i][j] = dp[i][j] || dp[i - 1][j - nums[i]];
//            }
//        }
//        cout << (dp[n][aim] ? "true" : "false");
//    }
//    return 0;
//}